<?php

namespace X;

class Menu {

    public static function Generar() {

        $ids = array();

        $session = new \Zend_Session_Namespace('Usuario');

        // obtener las funcionalidades

        $permisos = \Zend_Registry::getInstance()->entitymanager->createQueryBuilder()
                        ->select('DISTINCT(f.nombre)')
                        ->from('Default_Model_PerfilDepartamento', 'd')
                        ->join('d.perfil', 'p')
                        ->join('p.funcionalidades', 'f')
                        ->where("d.usuario='$session->idUsuario'")
                        ->orderBy('f.nombre', 'asc')
                        ->getQuery()
                        ->execute();

        // obtener los ids de los menuitems a mostrar
        foreach ($permisos as $permiso) {

            switch ($permiso['nombre']) {

                //Perfil
                case 'Listar.Perfil' : array_push($ids,'menu_usuario', 'menu_perfiles');
                    break;
                //Usuario
                case 'Listar.Usuario' : array_push($ids, 'menu_usuario', 'menu_adm_usuario');
                    break;
                //Horario
                case 'Crear.Horario' : array_push($ids, 'menu_adm_horarios','menu_horarios', 'menu_horarioCrear');
                                       array_push($ids, 'menu_adm_horarios','menu_horarios', 'menu_horarioEditar');
                    break;

                //Horario de Tutorías
                case 'Crear.Tutoria' : array_push($ids, 'menu_adm_horarios','menu_tutorias', 'menu_tutoriaCrear');
                array_push($ids, 'menu_adm_horarios','menu_tutorias', 'menu_tutoriaEditar');
                break;
//                case 'Asociar.Horario' : array_push($ids, 'menu_horarios', 'menu_horarioAsociar');
//                    break;
                //Tarjeta
                case 'Ver.Tarjeta' : array_push($ids, 'menu_tarjeta');
                    break;
	         //Calendario
                case 'Listar.Calendario' : array_push($ids, 'menu_calendario');
                    break;
                //Reporte
                 case 'Listar.Marcaciones' : array_push($ids, 'menu_registros','menu_reportes', 'menu_reportesListadoMarcaciones');
                    break;
                case 'Listar.Reporte' : array_push($ids, 'menu_registros','menu_reportes', 'menu_reporteAsistenciaProfesores');
                    break;
                 case 'Listar.Facultad' : array_push($ids, 'menu_facultad');
                    break;
                //Registros de asistencia
                case 'Crear.Registro' : array_push($ids, 'menu_registros', 'menu_registroGenerar');
                                        array_push($ids, 'menu_conflictos','menu_registroConflictosMateria');
                                        array_push($ids, 'menu_conflictos','menu_registroConflictosProfesor');
                    break;
                case 'Listar.Liquidaciones' : array_push($ids, 'menu_liquidaciones');
                    break;
                // recuperación de clases
                case 'Listar.Recuperacion':
                    array_push($ids, 'menu_recuperacion');
                    break;
            }
        }

        foreach (array_unique($ids) as $id) {
            echo "Ext.getCmp('$id').setVisible(true);";
        }

        //  echo "Ext.getCmp('menu_username').setText('$session->username:');";
    }

}